(function($){
	$.fn.tzExportColumn = function(options){
		var that = $(this);
		initModal();
		fillModal(that);
		saveModal(that,options);		
	}
//	初始化模态框
	function initModal(){
		var modal = '<div class="modal fade" id="filterModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">'+
		  			'<div class="modal-dialog modal-dialog-centered" role="document">'+
		  			'<div class="modal-content">'+
		  			'<div class="modal-header">'+
		  			'<h5 class="modal-title" id="headTitle">选择要导出的列</h5>'+
		  			'<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top:-20px;opacity:1;">'+
		  			'<span aria-hidden="true">&times;</span>'+
		  			'</button>'+
		  			'</div>'+
		  			'<div class="modal-body">'+
		  			'<div class="dropdown" style="border-bottom:1px solid #ccc;">'+//筛选列下拉
		  			'<label class="form-check-label" id="allCheck">'+
				    '<input class="form-check-input" type="checkbox" value=""/>全选'+
				    '</label>'+
				    '</div>'+//筛选列下拉结束
				    '<div class="form-check" id="contentList" style="height:200px;overflow:auto;">'+//内容列
					'<label class="form-check-label">'+
					'<input class="form-check-input" type="checkbox" value=""/>没有可选内容'+
					'</label>'+
					'</div>'+//内容列结束
					'</div>'+
					'<div class="modal-footer">'+
					'<button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>'+
					'<button type="button" class="btn btn-primary" id="saveChange">保存</button>'+
					'</div>'+
					'</div>'+
					'</div>'+
					'</div>';
		$('body').append(modal);
	}
	
//	在模态框中填充数据
	function fillModal(element){
		$('#filterModal').modal('show');
		var str = '';
		var column = element.bootstrapTable('getOptions').columns[0];
		for(var i=0;i<column.length;i++){
			if(column[i].title != undefined && column[i].field != 'operate'){
				str = str + '<label class="form-check-label"><input class="form-check-input" type="checkbox" data-field="'+column[i].field+'" data-value="'+column[i].title+'"/>'+column[i].title+'</label><br>';
			}
		}
		$('#contentList').html(str);
		
//		全选功能
		$('#allCheck input').on('change',function(){
			if($(this).prop('checked')){
				$('#contentList input').each(function(){
					$(this).prop('checked', true);
				})
			}else{
				$('#contentList input').each(function(){
					$(this).prop('checked', false);
				})			
			}
		})
		$('#contentList input').on('change', function(){
			if($('#contentList input:checked').length != $('#contentList input').length){
				$('#allCheck input').prop('checked', false);
			}else{
				$('#allCheck input').prop('checked', true);
			}
		})
		$('#allCheck input').prop('checked',true);
		$('#allCheck input').trigger('change');//默认全选
	}
	
//	保存数据
	function saveModal(element,options){				
		$('#saveChange').bind('click',(function(){			
			return function(){				
				 var checkInps = $('#contentList input:checked');				 							 			 							 
				 var selectCol = new Object();				 
				 checkInps.each(function(ind,item){
					 var str = $(item).data('field');
					 var value = $(item).data('value');
					 
					 if(str != undefined && str != 0){
						 if(value.indexOf("</br>")){
							 value = value.replace("</br>","");
						 }else if(value.indexOf("<br>")){
							 value = value.replace("<br>","");
						 }
						 selectCol[str] = value;
					 }
				 });					 
				if(JSON.stringify(selectCol) == "{}") {
					 swal_Tips("请至少选择一列！");
					 return;
				}
				$('#filterModal').modal('hide');
				let form = $("<form>"); //创建form标签		
				form.attr("id","form1");
				form.attr("style","display:none");
				form.attr("method","post");//设置请求方式
				form.attr("action",options.url); //action属性设置请求路径
				$("body").append(form); //页面添加form标签				 
				let input1 = $("<input>") //创建input标签
				input1.attr("type","hidden") //设置隐藏域
				input1.attr("name","data") //设置发送后台数据的参数名
				input1.attr("value",JSON.stringify(selectCol));
				form.append(input1);
				let input2 = $("<input>") //创建input标签
				input2.attr("type","hidden") //设置隐藏域
				input2.attr("name","sql") //设置发送后台数据的参数名
				input2.attr("value",options.sql);
				form.append(input2);
				let input3 = $("<input>") //创建input标签
				input3.attr("type","hidden") //设置隐藏域
				input3.attr("name","fBillNo") //设置发送后台数据的参数名
				input3.attr("value",options.fBillNo);
				form.append(input3);
				let input4 = $("<input>") //创建input标签
				input4.attr("type","hidden") //设置隐藏域
				input4.attr("name","fNumber") //设置发送后台数据的参数名
				input4.attr("value",options.fNumber);
				form.append(input4);
				let input5 = $("<input>") //创建input标签
				input5.attr("type","hidden") //设置隐藏域
				input5.attr("name","fName") //设置发送后台数据的参数名
				input5.attr("value",options.fName);
				form.append(input5);
				let input6 = $("<input>") //创建input标签
				input6.attr("type","hidden") //设置隐藏域
				input6.attr("name","fModel") //设置发送后台数据的参数名
				input6.attr("value",options.fModel);
				form.append(input6);
				let input7 = $("<input>") //创建input标签
				input7.attr("type","hidden") //设置隐藏域
				input7.attr("name","startTime") //设置发送后台数据的参数名
				input7.attr("value",options.startTime);
				form.append(input7);
				let input8 = $("<input>") //创建input标签
				input8.attr("type","hidden") //设置隐藏域
				input8.attr("name","endTime") //设置发送后台数据的参数名
				input8.attr("value",options.endTime);
				form.append(input8);
				let input9 = $("<input>") //创建input标签
				input9.attr("type","hidden") //设置隐藏域
				input9.attr("name","fIsZP") //设置发送后台数据的参数名
				input9.attr("value",options.fIsZP);
				form.append(input9);
				let input10 = $("<input>") //创建input标签
				input10.attr("type","hidden") //设置隐藏域
				input10.attr("name","end") //设置发送后台数据的参数名
				input10.attr("value",options.end);
				form.append(input10);
				form.submit();//表单提交即可下载！
				document.getElementById('form1').reset();
			}
		})(element))		
	}
})(jQuery)